Servers are used to process transactions from various workstations on networks ranging from small, local area networks (LANs), to large, wide area networks (WANs), including corporate Intranets, and indeed, even the Internet. Often, multiple servers are used to handle the transaction load. The individual servers may be dedicated to distinct departments (e.g., the accounting department, the marketing department, etc.). Alternatively, individual servers may be dedicated to distinct tasks (e.g., processing orders, inventory, etc.). Likewise, multiple servers may be pooled, and the incoming transactions directed to an available server in the server pool using a load balancer. As such, the traffic is balanced across all of the servers in the pool, and the transactions are processed more quickly.
Multiple servers, however, may be an inefficient use of the available resources. For example, the processors of a dedicated server, or servers in a server pool, may be underutilized. In addition, each server requires physical space, increasing operation costs. Furthermore, servers that are spread out over various locations may require the attendance of separate administrators.
One solution is a partitioned server. A partitioned server is a single server or aggregation of server resources subdivided to perform as multiple servers. Thus, a partitioned server continues to service multiple locations, multiple departments, and/or multiple transactions. As such, fewer individual servers are needed and operations are centralized, while maintaining the distinct characteristics of multiple individual servers. In addition, utilization of the server resources is enhanced.
The partitions of partitioned servers, however, may not be equally weighted. As such, some partitions may be better able to process transactions than other partitions, based on the configuration thereof. For example, one partition may be allocated 30% of the server resources (e.g., the CPU), while another partition may be allocated 70% of the server resources. Or for example, one partition may be allocated two processors while another partition is allocated only one processor. In addition, servers may be dynamically partitioned. For example, a partition that is originally allocated 10% of the server resources, may later be allocated an additional 20% of the server resources (e.g., based on the time of day). Or for example, a partition may be allocated three processors initially, and later allocated only one processor. However, current approaches to load balancing do not recognize the partitions of a server and the various configurations thereof.